// pages/index/index.js
const computedBehavior = require('miniprogram-computed')
const app = getApp();
import {
	PageJump
} from "../../Utils/Utils";

Page({

	/**
	 * 页面的初始数据
	 */
	data: {
		CustomBar: app.globalData.CustomBar, // 整体高度
		windowHeight: app.globalData.windowHeight, // 手机屏幕宽度
		scrollHeight: 0, // 手机头部高度
		IsDecideOn: false, // 用户是否点击菜单栏
		show: false, // 是否显示容器组件
		duration: 1000, // 动画时长，单位毫秒
		position: 'bottom', // 弹出位置
		round: true, // 是否显示圆角
		overlay: true, // 是否显示遮罩层
		customStyle: 'height: 65%;	position: fixed;bottom: 0;', // 自定义遮罩层样式
		overlayStyle: '', 					// 自定义弹出层样式
		PicturesShow: false, 				// 是否显示图片展示
		pictures: [], 						// 这个是全屏展示图片, 不能用本地图片
		current:0,							// 画廊下标
		currentList: [], 					// 每个对象就是一个帖子
		limit: 10, 							// 每页多少数据
		index:0,							// 分类下标
		CarouselS:[],						// 搜索框文字
		BombBoxShow:false,					// 加载状态是否显示
		BombBoxText:"努力加载中",			// 加载状态文字
		BombBox2Show:false,					// 提示状态是否显示
		BombBox2text:"暂未开发",				// 提示状态文字
		triggered:false,					// 是否下拉刷新
		CurrentCarousel:'输入你想搜索的',	// 当前轮播项
		timer:null,							// 定时器
	},

	/**
	 * 刷新页面数据
	 */
	freshenData() {
		this.setData({
			currentList: []
		})
		this.loadArticles(1)
	},
	/**
	 * 加载数据
	 */
	loadArticles(temp) {

		let that = this;
		let skip = that.data.currentList.length;
		let limit = that.data.limit
		if (temp != 1) {
			this.openBombBox("正在加载") // 打开加载动画	
		}

		if (skip % limit == 0) {
			// 当skip不为 limit 整除 就说明已经是最后一页了
			//可以尝试获取下一页数据
			wx.cloud.callFunction({
				name: "operation",
				data: {
					function: "getAllActicleList",
					skip: skip,
					limit: limit,
					type: this.data.type
				}
			}).then(res => {
				let acticlelists = res.result.data;
				// 本地data文章列表
				let datalist = []
				for (let al of acticlelists) {
					datalist.push({
						essayid: al._id,
						type: al.type
					})
				}
				that.setData({
					currentList: that.data.currentList.concat(datalist),
					triggered: false
				})
				that.closeBombBox() // 关闭加载动画
				that.CarouselRun()
			}).catch(err => {
				that.closeBombBox() // 关闭加载动画
			})
		} else {
			that.setData({
				triggered: false
			})
			that.closeBombBox() // 关闭加载动画
			that.optionBombBox2Show("没有更多了") // 打开提示动画
			that.CarouselRun()
		}
	},

	Maskevent: function(){
	},


	optionBombBox2Show: function (param) {
		let that = this
		let temp = that.data.BombBox2Show
		let temp2 = that.data.BombBoxShow
		if (temp || temp2) {
			return
		}
		that.setData({
			BombBox2Show: true,
			BombBox2text: param
		})
		setTimeout(() => {
			that.setData({
				BombBox2Show: false,
			})
		}, 1500)
	},

	openBombBox: function (param) {
		let that = this
		that.setData({
			BombBoxShow: true,
			BombBoxText: param
		})
	},

	closeBombBox: function () {
		let that = this
		that.setData({
			BombBoxShow: false,
		})
	},

	/**
	 * 生命周期函数--监听页面加载
	 */
	onLoad: function (options) {
		let that = this
		that.setData({
			scrollHeight: that.data.windowHeight - that.data.CustomBar,
		})
	},

	changePic(e) { // 显示隐藏预览图片组件
		let {
			pictures,
			index
		} = e.detail
		this.setData({
			current: index,
			pictures: pictures,
			PicturesShow: true
		})
	},

	change(e) { // 切换图片触发
	},

	hide: function () { // 关闭画廊触发
		this.setData({
			pictures: []
		})
	},


	DecideOn: function () { // 用户点击菜单
		this.setData({
			IsDecideOn: !this.data.IsDecideOn
		})
	},

	Close: function () { // 关闭评论
		this.setData({
			show: false
		})
	},

	popup(e) { // 打开评论弹出层		
		this.setData({
			show: true,
		})
	},

	onBeforeEnter(res) { // 	打开评论弹出层之前触发			
	},

	onAfterLeave(res) { // 关闭评论弹出层之后触发
	},

	onClickOverlay(res) { // 点击遮罩层触发
	},

	goSearch() { // 跳转到搜索页面
		// let temp = this.data.CurrentCarousel
		// PageJump('search','key',temp)
		PageJump('search')
	},

	goHome() { // 跳转到我的页面
		this.setData({
			IsDecideOn: false
		})
		wx.navigateTo({
			url: '../home/index'
		})
	},

	goIssue() { // 跳转至发布页面
		this.setData({
			IsDecideOn: false
		})
		wx.navigateTo({
			url: '../issue/index'
		})
	},


	goDetailBeUnusedToSell(param) { // 跳转至闲置出让详情
		let {
			data
		} = param.detail
		wx.navigateTo({
			url: '../detailBeUnusedToSell/index',
			success: function (res) {
				res.eventChannel.emit("getData", {
					data: data
				})
			}
		})
	},

	goDetailLoseAndReceive(param) { // 跳转至失物招领出让详情
		let {
			data
		} = param.detail
		wx.navigateTo({
			url: '../detailLoseAndReceive/index',
			success: function (res) {
				res.eventChannel.emit("getData", {
					data: data
				})
			}
		})
	},

	goDetailExpress(param) { // 跳转至我要表白详情
		let {
			data
		} = param.detail
		wx.navigateTo({
			url: '../detailExpress/index',
			success: function (res) {
				res.eventChannel.emit("getData", {
					data: data
				})
			}
		})
	},

	goUserDetail: function (param) {
		let {
			id
		} = param.detail
		wx.navigateTo({
			url: '../userDetail/index',
			success: function (res) {
				res.eventChannel.emit("getData", {
					id: id
				})
			}
		})
	},
	// scroll触底事件
	bindscrolltolower() {
		this.loadArticles()
	},

	changeItem: function (e) { // 控制分类下标
		let {
			index
		} = e.currentTarget.dataset
		if (this.data.index != index) {
			// 加载其他的之前必须先清空文章列表
			this.setData({
				index,
				currentList: []
			})
			// type 1 我要表白 2 闲置出让 3 失物招领
			switch (index) {
				case 0:
					this.setData({
						type: 0
					})
					break;
				case 1:
					this.setData({
						type: 3
					})
					break;
				case 2:
					this.setData({
						type: 2
					})
					break;
				case 3:
					this.setData({
						type: 1
					})
					break;
				default:
					this.optionBombBox2Show("暂未开放")
					return false
			}
			this.loadArticles()
		}
	},

	CarouselRun: function(){
		let that = this
		that.timer=null
		let CarouselS = that.data.CarouselS
		let Length = CarouselS.length
		let currentIndex = 0
		if(Length==1){
			let temp = CarouselS[currentIndex]
			that.setData({
				CurrentCarousel:temp
			})
		}else if(Length>1){
			that.timer = setInterval(()=>{
				if(currentIndex+1==Length){
					currentIndex=0
				}
				let temp = CarouselS[currentIndex]
				that.setData({
					CurrentCarousel:temp
				})
				currentIndex++
			},8000)
		}
	},

	/**
	 * 生命周期函数--监听页面初次渲染完成
	 */
	onReady: function () {
		// 加载所有的文章 不分类别
		this.loadArticles()
		

	},

	/**
	 * 生命周期函数--监听页面显示
	 */
	onShow: function () {

	},

	/**
	 * 生命周期函数--监听页面隐藏
	 */
	onHide: function () {
		this.timer=null
	},

	/**
	 * 生命周期函数--监听页面卸载
	 */
	onUnload: function () {

	},

	/**
	 * 页面相关事件处理函数--监听用户下拉动作
	 */
	onPullDownRefresh: function () {},
	/**
	 * 页面上拉触底事件的处理函数
	 */
	onReachBottom: function () {},

	/**
	 * 用户点击右上角分享
	 */
	onShareAppMessage: function (e) {
		let title = "";
		let path = "";
		if (e.target.dataset.acticleid) {
			// 分享文章
			if (e.target.dataset.type == 1) {
				title = '我要表白-' + e.target.dataset.nickname;
				path = '/pages/detailExpress/index?_id=' + e.target.dataset.acticleid;
			}else if (e.target.dataset.type == 2) {
				title = '闲置出让-' + e.target.dataset.nickname;
				path = '/pages/detailBeUnusedToSell/index?_id=' + e.target.dataset.acticleid;
			}else if (e.target.dataset.type == 3) {
				title = '失物招领-' + e.target.dataset.nickname;
				path = '/pages/detailLoseAndReceive/index?_id=' + e.target.dataset.acticleid;
			}
		}
		const promise = new Promise(resolve => {
			resolve({
				title: title,
				path: path,
			})
		})
		return {
			title: title,
			path: path,
			promise
		}
	}
})